POV-Ray : Newsgroups : povray.advanced-users : Ok, seriously, I need help here.. : Re: Ok, seriously, I need help here.. Server Time
8 Jul 2024 19:19:36 EDT (-0400)
  Re: Ok, seriously, I need help here..  
From: Alain
Date: 3 Mar 2008 21:20:56
Message: <47ccb208$1@news.povray.org>
Patrick Elliott nous apporta ses lumieres en ce 2008/03/03 20:20:
> In article <47cb5fa6$1@news.povray.org>, tim### [at] comcastnet says...
>> The center's a bit off, but this should work if
>> you don't cut it too deep.
>>
>> #local A = <-1,0,0>;
>> #local B = <1,0,0>;
>> #local C = <0,sqrt(2),0>;
>> #local D = <0,0,1>;
>> #local RAD = 0.075;
>>
>> #declare tetra = mesh {
>>    triangle {A,B,C}
>>    triangle {B,C,D}
>>    triangle {C,D,A}
>>    triangle {D,A,B}
>>    inside_vector (A+B+C+D)/4
>>    translate <0,0,-RAD>
>> }
>>
>> #declare octaside = union {
>>     sphere {A,RAD}
>>     sphere {B,RAD}
>>     sphere {C,RAD}
>>     cylinder {A,B,RAD}
>>     cylinder {C,B,RAD}
>>     cylinder {A,C,RAD}
>>     object{tetra}
>>     rotate <45,0,0>
>>     translate <0,0,-1>
>> };
>>
>> #declare pyramid = union {
>>    object {octaside}
>>    object {octaside rotate <0,90,0>}
>>    object {octaside rotate <0,180,0>}
>>    object {octaside rotate <0,270,0>}
>> };
>>
>> #declare octagon = union {
>>    object {pyramid}
>>    object {pyramid rotate <180,0,0>}
>> };
>>
> Strictly speaking, the last version I posted was intended to be 100% 
> solid, with ior for crystal. The version works fine, as a solid color, 
> where I only plan to cut into the surface a bit to leave behind color. 
> I.e., when I don't need 100% of it to be solid. The problem here is, I 
> am not sure the result is what it *should* look like for a solid 
> crystal. I threw together the scene rather quickly, so I don't know if 
> the odd streaking is a result of the shape, the simple scene, or 
> mistakes in my merges. :(
> 
It contain an inner cavity. The top and bottom meshes intersect. The 4 meshes of 
the top never meet, creating a large cross shaped opening. If you want a 
transparent octaedron, you must fill that, in addition to using merge.

If you look at the way I proposed (intersection of planes), you'll see that 
there are no iner opening.
#declare SQ = sqrt(2);
#declare Octabase =//create the base solid octaedron
	intersection{plane{<0,1,SQ>,1
		plane{<0,1,SQ>,1 }
		plane{<0,1,SQ>,1 }
		plane{<0,1,SQ>,1 }
		plane{<0,-1,SQ>,1}
		plane{<0,-1,SQ>,1 rotate<0,90,0>}
		plane{<0,-1,SQ>,1 rotate<0,180,0>}
		plane{<0,-1,SQ>,1 rotate<0,270,0>}
		}

#local Cut = SQ; //adjust for larger or smaller flatening of edges
#declare CutOctaedron =
	intersection{
		object{Octabase}// each of the next 3 box cut 4 edges
		box{<Cut,2,Cut>,<-Cut,-2,-Cut>}
		box{<2,Cut,Cut>,<-2,-Cut,-Cut>rotate<45,45,0>}
		box{<2,Cut,Cut>,<-2,-Cut,-Cut>rotate<-45,-45,0>}
		box{Cut, -Cut rotate 45*y}//to cut the remaining tips
		//last box is optional
		}

-- 
Alain
-------------------------------------------------
Moonies: Only really happy shit happens.


Post a reply to this message

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.